Перейти к основному содержимому

Management API

Management API — это REST API для управления моделями.

URL: http://localhost:8080/pod-1/api/

С его помощью вы можете:

  • Загрузить новую модель в Compressa
  • Запустить модель для инференса
  • Провести дообучение модели
  • И т. д.

Также доступна документация Swagger, если вам удобнее работать с REST API напрямую из браузера URL: http://localhost:8080/pod-1/api/docs/

Библиотека моделей

GET /v1/models/

Список моделей, доступных для запуска и дообучения.

Пример:

curl -X 'GET' \
'http://localhost:8080/pod-1/api/v1/models/' \
-H 'accept: application/json'

Схема ответа:

[
{
"model_id": "string",
"adapter": true,
"base_model_id": "string"
}
]

POST /v1/models/add/

Скачивание модели с Hugging Face.

Параметры:

  • query: model_id - идентификатор модели на Hugging Face, например openchat/openchat-3.5-0106 для ссылки.

Пример:

curl -X 'POST' \
'http://localhost:8080/pod-1/api/v1/models/add/?model_id=mymodel_id' \
-H 'accept: application/json' \
-d ''

Схема ответа:

{
"id": "4d78d943-1896-4d7b-9f11-b10cc2389ba3",
"name": "DOWNLOAD_mymodel_id",
"status": "RUNNING",
"started_at": "2024-03-21T09:58:29.846708"
}

Запуск моделей

GET /v1/deploy/

Получить информацию о текущей развернутой модели.

Пример:

curl -X 'GET' \
'http://localhost:8080/api/pod-1/v1/deploy/' \
-H 'accept: application/json'

Схема ответа:

{
"model_id": "string",
"adapter_ids": [
"string"
]
}

POST /v1/deploy/

Запуск моделей и дообученных адаптеров для инференса. Список id можно получить с помощью GET /v1/models/.

Тело запроса:

{
"model_id": "string",
"adapter_ids": [
"string"
]
}
  • model_id - идентификатор модели
  • adapter_ids - список идентификаторов адаптеров

Пример:

curl -X 'POST' \
'http://localhost:8080/pod-1/api/v1/deploy/' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"model_id": "model_id1",
"adapter_ids": [
"adapter_id1",
"adapter_id2"
]
}'

Схема ответа:

{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"status": "CREATED",
"started_at": "2024-03-21T10:10:07.521Z"
}

GET /v1/deploy/status

Получить статус развернутой модели.

Пример:

curl -X 'GET' \
'http://localhost:8080/pod-1/api/v1/deploy/status/' \
-H 'accept: application/json'

Схема ответа:

{
"model_id": "model_id1",
"adapter_ids": [
"adapter_id1",
"adapter_id2"
],
"job": {
"id": "8a63349c-078f-4e98-8968-4f011593329c",
"name": "DEPLOY_model_id1_adapters_id1_id2",
"status": "RUNNING",
"started_at": "2024-03-21T07:35:16.861681"
}
}

POST /v1/deploy/interrupt/

Отключение текущей развернутой модели.

Пример:

curl -X 'POST' \
'http://localhost:8080/pod-1/api/v1/deploy/interrupt/' \
-H 'accept: application/json' \
-d ''

Схема ответа:

{
"id": "8a63349c-078f-4e98-8968-4f011593329c",
"name": "DEPLOY_model_id1_adapters_id1_id2",
"status": "RUNNING",
"started_at": "2024-03-21T07:35:16.861681"
}

Jobs

Операции, такие как загрузка модели или развертывание, связаны с jobs. Следующие API позволяют управлять выполнением jobs.

GET /v1/jobs/

Получить все jobs со статусами.

Пример:

curl -X 'GET' \
'http://localhost:8080/pod-1/api/v1/jobs/' \
-H 'accept: application/json'

Схема ответа:

[
{
"id": "8a63349c-078f-4e98-8968-4f011593329c",
"name": "DEPLOY_model_id1_adapters_id1_id2",
"status": "RUNNING",
"started_at": "2024-03-21T07:35:16.861681"
},
{
"id": "4d78d943-1896-4d7b-9f11-b10cc2389ba3",
"name": "DOWNLOAD_test",
"status": "FINISHED",
"started_at": "2024-03-21T09:58:29.846708"
}
]

GET /v1/jobs/{job_id}/status/

Получить последний статус job с job_id.

Параметры:

  • path: job_id

Пример:

curl -X 'GET' \
'http://localhost:8080/pod-1/api/v1/jobs/4d78d943-1896-4d7b-9f11-b10cc2389ba3/status/' \
-H 'accept: application/json'

Схема ответа:

{
"id": "4d78d943-1896-4d7b-9f11-b10cc2389ba3",
"name": "DOWNLOAD_test",
"status": "FINISHED",
"started_at": "2024-03-21T09:58:29.846708"
}

POST /v1/jobs/{job_id}/interrupt/

Прервать выполнение job с job_id.

Параметры:

  • path: job_id

Пример:

curl -X 'POST' \
'http://localhost:8080/api/v1/jobs/8a63349c-078f-4e98-8968-4f011593329c/interrupt/' \
-H 'accept: application/json' \
-d ''

Схема ответа:

{
"id": "8a63349c-078f-4e98-8968-4f011593329c",
"name": "DEPLOY_model_id1_adapters_id1_id2",
"status": "KILLED",
"started_at": "2024-03-21T07:35:16.861681"
}